package com.linsen.erp.admin.provider.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel("员工-基本信息VO")
public class EmployeeVO implements Serializable {

    @ApiModelProperty("员工-基本信息id")
    private String id;
    @ApiModelProperty("用户id")
    private String userId;
    @ApiModelProperty("用户详情（冗余）")
    private UserVO userVO;
    @ApiModelProperty("账户名")
    private String username;
    @ApiModelProperty("工号")
    private String no;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("性别：0，保密；1，男；2，女；")
    private Integer gender;
    @ApiModelProperty("手机号")
    private String tel;
    @ApiModelProperty("身份证号")
    private String idcard;
    @ApiModelProperty("出生日期")
    private LocalDate birthday;
    @ApiModelProperty("居住地址")
    private String address;
    @ApiModelProperty("户籍类型：1，农村户口；2，城镇户口；3，其他")
    private Integer registerType;
    @ApiModelProperty("民族")
    private String nation;
    @ApiModelProperty("婚姻状态：1，未婚；2，已婚；3，离异")
    private Integer marital;
    @ApiModelProperty("所属区域id")
    private String areaDeptid;
    @ApiModelProperty("所属区域详情（冗余）")
    private DeptVO areaDeptVO;
    @ApiModelProperty("所属公司id")
    private String companyDeptid;
    @ApiModelProperty("所属公司详情（冗余）")
    private DeptVO companyDeptVO;
    @ApiModelProperty("所属部门id")
    private String deptid;
    @ApiModelProperty("所属部门详情（冗余）")
    private DeptVO deptVO;
    @ApiModelProperty("App登录范围（多项字符串拼接）：1，管理端；2，员工端")
    private String appScope;

    @ApiModelProperty("员工-账号信息")
    private EmployeeAccountVO employeeAccountVO;
    @ApiModelProperty("员工-紧急联系人列表")
    private List<EmployeeContactVO> employeeContactVOList;
    @ApiModelProperty("员工-教育信息")
    private EmployeeEducationVO employeeEducationVO;
    @ApiModelProperty("员工-用工信息")
    private EmployeeEmploymentVO employeeEmploymentVO;
    @ApiModelProperty("员工-汇报关系")
    private EmployeeReportingVO employeeReportingVO;

    @ApiModelProperty("创建操作人")
    private String createBy;
    @ApiModelProperty("创建操作人username")
    private String createByName;
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
    @ApiModelProperty("更新操作人")
    private String updateBy;
    @ApiModelProperty("更新操作人username")
    private String updateByName;
    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;
}
